/*
	FileName : bsp_ADC.h
	Description :
		ADC BSP header file.
	Created on 2013.02.20 by ZZP.

	Revision History:

*/

#ifndef __BSP_ADC_H__
#define __BSP_ADC_H__

#include "stdint.h"

///////////////////////////////////////////////////////////
///	Constants
///////////////////////////////////////////////////////////
///Sample data quantity
#define ADCx_SAMPLE_NBR						8u

///ADC result resolution
#define ADCx_RESOLUTION						ADC_RESOLUTION_16B	
///ADC clk=100M/4=25M, so sample time
#define ADCx_SAMPLE_TIME					ADC_SAMPLETIME_64CYCLES_5


///////////////////////////////////////////////////////////////////////////
///hardware
///////////////////////////////////////////////////////////////////////////
#define ADCx                            	ADC1
#define ADCx_CLK_ENABLE()               	__HAL_RCC_ADC12_CLK_ENABLE()
#define ADCx_CHANNEL_GPIO_CLK_ENABLE()  	__HAL_RCC_GPIOC_CLK_ENABLE()
#define ADCx_CHANNEL_GPIO_CLK_ENABLE_2()	__HAL_RCC_GPIOA_CLK_ENABLE()

#define ADCx_FORCE_RESET()              	__HAL_RCC_ADC12_FORCE_RESET()
#define ADCx_RELEASE_RESET()            	__HAL_RCC_ADC12_RELEASE_RESET()

/* Definition for ADCx Channel Pin */
#define ADCx_CHANNEL_PIN                	(GPIO_PIN_4 | GPIO_PIN_5)
#define ADCx_CHANNEL_GPIO_PORT          	GPIOC

///PA4 : ADC12-CHANNEL18
#define ADCx_CHANNEL_PIN_2              	GPIO_PIN_4
#define ADCx_CHANNEL_GPIO_PORT_2        	GPIOA

/////////////////////////////////////////////////////////////////////////
/* Definition for ADCx's DMA */
/////////////////////////////////////////////////////////////////////////
#define ADCx_DMA_CHANNEL                	DMA_REQUEST_ADC1



///////////////////////////////////////////////////////////
///	Function prototypes
///////////////////////////////////////////////////////////
void BSP_ADC_Init(uint16_t *ResBuf, uint16_t AdcFreq);
void BSP_ADC_DeInit(void);
void BSP_ADC_Start(void);
void BSP_ADC_ResetOVR(void);




#endif///BSP_ADC_H




